#ifndef _GOVT_DMG_HPP_
#define _GOVT_DMG_HPP_
/*******************************************************************************
 ** Name: dmg.hpp                                                       **
 ** Description:              **
 **                                                                           **
 ** Open Source Initiative (OSI) Approved License                             **
 **                                                                           **
 ** The contents of this file are subject to the terms of the                 **
 ** Common Development and Distribution License, Version 1.0 only             **
 ** (the "License").  You may not use this file except in compliance          **
 ** with the License.                                                         **
 **                                                                           **
 ** You can find a copy of the license in the LICENSE file within             **
 ** this distribution or at $GOVTSANCT_WIKI/License-software.                **
 ** Software distributed under the License is distributed on an "AS IS"       **
 ** basis, WITHOUT WARRANTY OF ANY KIND, either express or implied.           **
 ** See the License for the specific language governing permissions           **
 ** and limitations under the License.                                        **
 **                                                                           **
 ** When distributing Covered Code, include this CDDL header in each          **
 ** file and include the License file at $HOME/LICENSE.                      **
 ** If applicable, add the following below this header, with the indicated    **
 ** fields enclosed by brackets "[]" replaced with your own identifying       **
 ** information: Portions Copyright [yyyy] [name of copyright owner]          **
 **                                                                           **
 **                                                                           **
 ** Copyright (c) 2009-2011  Barry Gian James <gian@gamingods.net>            **
 ** All rights reserved.                                                      **
 **                                                                           **
 ** Ref: $HeadURL$
 ******************************************************************************/
// Portions (c) 2012 Open Design Strategies, LLC.
// $Id$
// Last Modified by $Author$

enum class DmgType : ushort {
    Lethal,     //!< Lethal damage can kill you
    NonLethal   /*!< Non-lethal damage can knock you out */
};

// Weapon Damage
enum class WpnDamage : ushort {
	Ballistic, Piercing, Slashing,
	Blunt, Bang
};

// Elemental Damage
enum class ElementalDamage : ushort {
	Cold, Fire, Electricity, Poison, Force, Sonic,
	Earth, Air, Water, Nox
};

// Natural Damage
enum class NaturalDamage : ushort {
	Claw, Bite, Trample, Gore
};

//! @class Damage
//! @brief Static, interface type class for damage functions
struct Damage
{
	static int		Average(int min, int max, bool roundDown = true);
	static int		Generate(int min, int max, bool roundDown = true);
//	static int		Damage::DPS(time_t start, time_t end, int dmg);

};

#pragma db value
struct Dice
{
	Dice() : num(0), sides(0), bonus(0) { }
	Dice(int n, int s, int b = 0) : num(n), sides(s), bonus(b) { }
	int		num;
	int		sides;
	int		bonus;

	int		Roll() {
		return Damage::Generate(num,(num*sides)) + bonus;
	}

};

#endif /* _GOVT_DMG_HPP_ */
